package com.ww.microrpc.netty.handler;

import io.netty.handler.codec.LengthFieldBasedFrameDecoder;

public class ProtocolFrameDecoderHandler extends LengthFieldBasedFrameDecoder {

    public ProtocolFrameDecoderHandler() {
        this(1024 * 100, 0, 4, 8, 0);
    }

    /**
     * 构造器
     *
     * @param maxFrameLength      一帧消息的最大长度，超过该长度就会报错
     * @param lengthFieldOffset   消息长度的偏移量
     * @param lengthFieldLength   用多少个字节来表示消息长度
     * @param lengthAdjustment    消息长度位置后面需要调整（即往后数）多少个字节才能开始读取消息正文
     * @param initialBytesToStrip 需要剥离多少个字节。即，一条消息是包含着`消息长度 + 消息内容 + 其他内容`组成的。
     *                            这里可以通过指定字节的长度，来将那些额外的字节剥离掉，只剩消息体，然后将消息体传递给后面的handler
     */
    public ProtocolFrameDecoderHandler(int maxFrameLength, int lengthFieldOffset, int lengthFieldLength, int lengthAdjustment, int initialBytesToStrip) {
        super(maxFrameLength, lengthFieldOffset, lengthFieldLength, lengthAdjustment, initialBytesToStrip);
    }
}
